/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package servlets;

import dao.FabricanteDAO;
import entity.Fabricante;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Paulinha
 */
@WebServlet(name = "ControladoraFabricante", urlPatterns = {"/ControladoraFabricante"})
public class ControladoraFabricante extends HttpServlet {

   /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, SQLException {
        response.setContentType("text/html;charset=UTF-8");
        
        String action = request.getParameter("action");
                
        if (action.equals("incluir")){
                    
        String nome = request.getParameter("nome");

        Fabricante fabricante = new Fabricante();
        fabricante.setNome(nome);

                
        FabricanteDAO fabricanteDAO = new FabricanteDAO();
        
        if (fabricanteDAO.nomeExistente(nome)){
                
        request.setAttribute("mensagemNome","Nome de fabricante já cadastrado");  
        RequestDispatcher rd = request.getRequestDispatcher("/cadastra_fabricante.jsp");
        rd.forward(request, response);         
        } else{    
            
        fabricanteDAO.insere(fabricante);
        
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/listar_fabricante.jsp");
        rd.forward(request, response);
        }
        }
        
        else if (action.equals("mostraralterar")) {
            
            String id = request.getParameter("id");
            int num = 0;
            num = Integer.parseInt(id);
            Fabricante fabricante = new Fabricante();
            FabricanteDAO dao = new FabricanteDAO();
            fabricante = dao.buscaFab(num);
            request.setAttribute("fabricante", fabricante);
            RequestDispatcher rd = request.getServletContext().getRequestDispatcher("/fabricante_altera.jsp");
            rd.forward(request, response);          
        }

        else if (action.equals("alterar")){
             String id = request.getParameter("id");
             String nome = request.getParameter("nome_fabricante");
             
            int num = 0;
            num = Integer.parseInt(id);
            Fabricante fabricante = new Fabricante();
            fabricante.setIdFabricante(num);
            fabricante.setNome(nome);
            FabricanteDAO dao = new FabricanteDAO();
            dao.altera(fabricante);
            RequestDispatcher rd = request.getServletContext().getRequestDispatcher("/listar_fabricante.jsp");
            rd.forward(request, response);           
        

        }

        else if (action.equals("deletar")){

        int idfab = Integer.parseInt(request.getParameter("id"));
       
        Fabricante fabricante = new Fabricante();
        fabricante.setIdFabricante(idfab);
            
        FabricanteDAO fabricanteDAO = new FabricanteDAO();
        fabricanteDAO.excluir(fabricante);
        
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/listar_fabricante.jsp");
        rd.forward(request, response);
        }
        
        else if (action.equals("pesquisar")){            
            String pesquisa = request.getParameter("busca_fab");                                          
            FabricanteDAO daofabricante = new FabricanteDAO();
            List<Fabricante> fabricante = daofabricante.procurar(pesquisa);            
            request.setAttribute("fabricante", fabricante);
            RequestDispatcher rd = request.getServletContext().getRequestDispatcher("/listar_fabricante_pesquisa.jsp");
            rd.forward(request, response);
    }
    }

 // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(ControladoraFabricante.class.getName()).log(Level.SEVERE, null, ex);
        }

}

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(ControladoraFabricante.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
